<?php

namespace App\Service;
use Illuminate\Support\Facades\Redis;
class Sms
{
    //封装短信宝方法
    public static function send($phone)
    {
//        $time = Redis::get('register_time_' . $phone);
//        //验证短信验证码发送频繁
//        if (isset($time) && time() - $time < 30) {
//            return '发送发送太频繁';
//        }
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket，联系您的空间商解决或者更换空间！",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
        );
        $smsapi = "http://api.smsbao.com/";//短信宝地址
        $user = "llliuxuan"; //短信平台帐号
        $pass = md5("liuxuan123"); //短信平台密码
        $code = rand(0000,9999);//验证码
        $content = "【宏烨找房】您正在注册，验证码是：{$code},有效期3分钟,请勿泄露给他人";//要发送的短信内容
        $sendurl = $smsapi . "sms?u=" . $user . "&p=" . $pass . "&m=" . $phone . "&c=" . urlencode($content);
//        //redis缓存存入手机验证码
//        Redis::setex('register_' . $phone,3 * 60,$code);
//        //redis缓存时间，防止频繁发送短信
//        Redis::set('register_time_' . $phone, time());
        //方便调试
        return $code;//返回验证码
        //向短信服务商的 API 发送 GET 请求触发短信发送的功能
        $result = file_get_contents($sendurl);
        //将短信服务商 API 返回的发送状态码 $result 转换为对应的状态描述，并将其作为函数返回值。
        return $statusStr[$result];
    }
}
